package edu.algo3.algoThief.vista;

import edu.algo3.algoThief.domain.Juego;
import edu.algo3.algoThief.util.Constants;

@SuppressWarnings("serial")
public class VentanaPrincipal extends javax.swing.JFrame {

	// Variables declaration - do not modify                     
    private javax.swing.JButton botonIngresar;
    private javax.swing.JButton botonSalir;
    private javax.swing.JLabel labelCargarJuego;
    private javax.swing.JLabel labelIdentifiquese;
    private javax.swing.JLabel labelTituloDelJuego;
    private javax.swing.JTextField textNombrePolicia;
    // End of variables declaration      
	
	
	public VentanaPrincipal() {
        initComponents();
    }
    
    private void initComponents() {

        textNombrePolicia = new javax.swing.JTextField();
        labelTituloDelJuego = new javax.swing.JLabel();
        labelIdentifiquese = new javax.swing.JLabel();
        labelCargarJuego = new javax.swing.JLabel();
        botonSalir = new javax.swing.JButton();
        botonIngresar = new javax.swing.JButton();
        
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Menu principal");
        setResizable(true);

        labelTituloDelJuego.setFont(new java.awt.Font("Stencil", 0, 48)); // NOI18N
        labelTituloDelJuego.setForeground(new java.awt.Color(153, 0, 0));
        labelTituloDelJuego.setText(Constants.NOMBRE_DEL_JUEGO);

        labelIdentifiquese.setFont(new java.awt.Font("Stencil", 0, 18)); // NOI18N
        labelIdentifiquese.setText(Constants.MENSAJE_PARA_IDENTIFICARSE);

        labelCargarJuego.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        labelCargarJuego.setForeground(new java.awt.Color(0, 51, 204));
        labelCargarJuego.setText(Constants.MENSAJE_PARA_CARGAR_JUEGO);
        labelCargarJuego.setCursor(new java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
        labelCargarJuego.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                labelCargarJuegoMouseClicked(evt);
            }
        });

        botonSalir.setBackground(new java.awt.Color(139, 27, 27));
        botonSalir.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botonSalir.setForeground(new java.awt.Color(255, 255, 255));
        botonSalir.setText(Constants.SALIR_DE_VENTANA);
        botonSalir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonSalirActionPerformed(evt);
            }
        });

        botonIngresar.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
        botonIngresar.setForeground(new java.awt.Color(102, 0, 0));
        botonIngresar.setText(Constants.INGRESAR);
        botonIngresar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                botonIngresarActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(labelIdentifiquese)
                    .addComponent(textNombrePolicia, javax.swing.GroupLayout.PREFERRED_SIZE, 149, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(botonIngresar)
                    .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                        .addGroup(layout.createSequentialGroup()
                            .addComponent(labelCargarJuego)
                            .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(botonSalir))
                        .addComponent(labelTituloDelJuego)))
                .addContainerGap(21, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(labelTituloDelJuego)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(labelIdentifiquese, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(textNombrePolicia, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(botonIngresar)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 56, Short.MAX_VALUE)
                        .addComponent(labelCargarJuego))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(botonSalir, javax.swing.GroupLayout.PREFERRED_SIZE, 32, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>                        

    
    
    
    private void botonIngresarActionPerformed(java.awt.event.ActionEvent evt) {
    	
    	//	a continuacion se hace la validacion de nombre vacio
    	if ( estaVacioElCampoDeNombre()){
    		  new PanelMensajeAdvertencia(this, Constants.ADVERTENCIA_TITULO , Constants.ADVERTENCIA_NOMBRE_VACIO);
    	      return;
    	}
    	
    	String nombreJugador = this.textNombrePolicia.getText();
    	
        Juego juego = Juego.getInstance();
        if (Juego.getInstance().jugadorTienePartidaGuardada(nombreJugador)) {
            Juego.getInstance().cargarPartida(nombreJugador);
            new PanelMensajeJuegoCargado();
        } else {
            juego.inicializar(nombreJugador, Constants.JUGADOR_NUEVO_CERO_ARRESTOS);
            new PanelMensajeCasoAsignado();
        }
        this.setVisible(Boolean.FALSE);

    }                                             

    private void labelCargarJuegoMouseClicked(java.awt.event.MouseEvent evt) { 
    	
        //  Codigo cuando se preciona texto "Cargar juego"
    }                                             

    private void botonSalirActionPerformed(java.awt.event.ActionEvent evt) {                                           
        System.exit(0);
    }                                          

 
    
    private boolean estaVacioElCampoDeNombre() {
		
		String nombreJugador = this.textNombrePolicia.getText();
		return ( nombreJugador.equals("") || nombreJugador.equals(null) );
	}
    
    
}



